package com.xyw.code.common.core.exception;

/**
 * Created with IntelliJ IDEA.
 * User: xuyiwei
 * Date: 2020/6/30
 * Time: 上午11:04
 * Email: 1328312923@qq.com
 * Description: 全局错误基础断言
 **/
public interface Assert {
    /**
     * 创建异常
     * @param args 后面带的几个是错误枚举什么的
     * @return
     */
    BaseException newException(Object... args);

    /**
     * 创建异常
     * @param t
     * @param args 后面带的几个是错误枚举什么的
     * @return
     */
    BaseException newException(Throwable t, Object... args);

    /**
     * <p>断言对象<code>obj</code>非空。如果对象<code>obj</code>为空，则抛出异常
     *
     * @param obj 待判断对象
     */
    default void assertNotNull(Object obj) {
        if (obj == null) {
            throw newException(obj);
        }
    }
}
